#ifndef __TCPSERVER_HPP__
#define __TCPSERVER_HPP__

#include "Acceptor.hpp"
#include "EventLoop.hpp"

class TcpServer {
public:
    TcpServer(unsigned short port); // Constructor
    TcpServer(const char* ip, unsigned short port); // Constructor
    void start(); // 开始服务
    void stop(); // 停止服务
    void setConnectionCallback(TcpServerCallback cb); // 设置回调函数
    void setMessageCallback(TcpServerCallback cb); // 设置回调函数
    void setCloseCallback(TcpServerCallback cb); // 设置回调函数
private:
    Acceptor _acceptor; // 连接器对象
    EventLoop _epollfd; // EventLoop对象
    typedef TcpConnection::TcpConnectionCallback TcpServerCallback;
};

#endif